/*
 * Binary.h
 *
 *  Created on: 29.04.2012
 *      Author: Eugene Kornykhin
 */

#ifndef BINARY_H_
#define BINARY_H_

#include "../PElement.h"
#include <string>

class Binary: public PElement {
public:
	Binary();
	virtual ~Binary();

	virtual void execute(Interpreter &);

	virtual PolizPosition next_position_after(PolizPosition) const;
	virtual bool isHalt() const;
	virtual Binary *clone(const Poliz &) const = 0;
	string toString() const = 0;

protected:
	virtual void push_operation_result(Interpreter &, const PElement &, const PElement &) = 0;
};

#endif /* BINARY_H_ */
